当我们需要处理的数据源本身是异步产生的时候(例如,从一个流式API接收数据块),就需要使用 async for。
一个对象若要支持 async for,它必须实现 __aiter__ 和 __anext__ 方法,这被称为异步迭代器。
async def 配合 yield 可以方便地创建异步生成器,这是一种简单的异步迭代器实现。
Python
async def async_counter(limit):
for i in range(limit):
await asyncio.sleep(0.1) # 模拟异步操作
yield i
async def main():
# 每次循环,都会等待 async_counter 异步地产生下一个值
async for number in async_counter(5):
print(number)
相关链接:
async for也是在async def函数内部使用的 →async def- 定义异步函数和方法